home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Mac Power 1996 October
/
MACPOWER-1996-10.ISO.7z
/
MACPOWER-1996-10.ISO
/
AMUG
/
Internet_31
/
NetCacheResolver 0.9d6
/
NetCacheResolver 0.9d6 ト
/
library
/
NCR_Error.c
< prev
next >
Wrap
Text File
|
1996-05-12
|
5KB
|
191 lines
// NetCache Resolver, 1995 (C) Mizutori Tetsuya
// - NCR_Error.c, October 8, 1995
// This document is pretty printed in 10-point Geneva font.
#include "NCR_Error.h"
// prototypes
static short DisplayAlert (Boolean fatal );
static StringPtr ErrAE ( OSErr errCode );
static StringPtr ErrMEM ( OSErr errCode );
static StringPtr ErrFS ( OSErr errCode );
/***** Do Error Messages *****/
#define kAlertID 1000
#define kErrStringID 1000
#define kNilFilterProc nil
#define kMoveToFront (WindowPtr)-1L
void ErrorMessage ( long err, StringPtr string, Boolean fatal )
{
Str31 errStr;
Str255 str = "¥p";
NumToString( err, errStr );
ParamText( "¥pError = ", errStr, "¥p¥r", string );
DisplayAlert( fatal );
}
void ErrorMessageFS ( long err, Boolean fatal )
{
ParamText( "¥pFile System Error:¥r", ErrFS(err), "¥p", "¥p" );
DisplayAlert( fatal );
}
void ErrorMessageAE ( long err, Boolean fatal )
{
ParamText( "¥pApple Event Error:¥r", ErrAE(err), "¥p", "¥p" );
DisplayAlert( fatal );
}
void ErrorMessageMEM ( long err, Boolean fatal )
{
ParamText( "¥pMemory System Error:¥r", ErrMEM(err), "¥p", "¥p" );
DisplayAlert( fatal );
}
static short DisplayAlert (Boolean fatal )
{
short item;
if ( fatal ) {
item = StopAlert( kAlertID, kNilFilterProc );
ExitToShell();
} else {
item = NoteAlert( kAlertID, kNilFilterProc );
if ( item == cancel ) ExitToShell();
}
return item;
}
/***** Error messages for File System *****/
static StringPtr ErrFS ( OSErr errCode )
{
StringPtr s;
switch ( errCode ) {
case noErr: s = "¥pNo error"; break;
case ioErr: s = "¥pI/O error"; break;
case opWrErr: s = "¥pFile already open for writing"; break;
case permErr: s = "¥pAttempt to open locked file for writing"; break;
case wrPermErr: s = "¥pWrite permittions does not allow writing"; break;
case fLckdErr: s = "¥pFile is locked"; break;
case tmfoErr: s = "¥pToo many files open"; break;
case wPrErr: s = "¥pDiskette is write-protected"; break;
case dirFulErr: s = "¥pDirectory is full"; break;
case dskFulErr: s = "¥pDisk is full"; break;
default: s = "¥pUnknown error"; break;
}
return s;
}
/***** Error messages for Memory System *****/
static StringPtr ErrMEM ( OSErr errCode )
{
StringPtr s;
switch ( errCode ) {
case paramErr: s = "¥pError in parameter list"; break;
case memROZErr: s = "¥pOperation on a read-only zone"; break;
case memFullErr: s = "¥pNot enough memory"; break;
case nilHandleErr: s = "¥pNIL master pointer"; break;
case memWZErr: s = "¥pAttempt to operate on a free block"; break;
case memPurErr: s = "¥pAttempt to purge a locked block"; break;
case memBCErr: s = "¥pBlock check failed"; break;
case memLockedErr: s = "¥pBlock is locked"; break;
}
return s;
}
/***** Error messages for Apple Event *****/
static StringPtr ErrAE ( OSErr errCode )
{
StringPtr s;
switch ( errCode ) {
case noErr: s = "¥pNo error"; break;
case paramErr: s = "¥pParameter error"; break;
case memFullErr: s = "¥pNot enough room in heap zone"; break;
case errAECoercionFail: s = "¥pData could not be coerced"; break;
case errAEWrongDataType: s = "¥pWrong descriptor type"; break;
case errAEDescNotFound : s = "¥pDescriptor record was not found"; break;
case errAENotAEDesc: s = "¥pNot a valid descriptor record"; break;
case errAEReplyNotValid: s = "¥pReply has not yet arrived"; break;
default: s = "¥pUnknown error"; break;
}
return s;
}
/***** Gestalt check *****/
void GestaltCheck ( OSType gestaltCode )
{
StringPtr s1,s2,s3,s4;
long feature, mask;
Boolean result;
OSErr err;
switch ( gestaltCode ) {
case gestaltProcessorType:
mask = gestalt68020;
s1 = "¥pError: Problem in calling Gestalt!";
s2 = "¥pSorry, this program requires 68020 CPU, or later.";
break;
case gestaltSystemVersion:
mask = 0x0700;
s1 = "¥pError: Problem in calling Gestalt!";
s2 = "¥pSorry, this program requires System 7, or later.";
break;
case gestaltAppleEventsAttr:
mask = gestaltAppleEventsPresent;
s1 = "¥pError: Problem in calling Gestalt!";
s2 = "¥pError: Apple events not available!";
break;
case gestaltStandardFileAttr:
mask = gestaltStandardFile58;
s1 = "¥pError: Gestalt for Standard File Package";
s2 = "¥pError: Gestalt for The new Standard File Package";
break;
case gestaltFSAttr:
mask = gestaltHasFSSpecCalls;
s1 = "¥pError: File System Attributes is not supported.";
s2 = "¥pError: The new FSSpec File Manager is not supported.";
break;
default:
mask = 0;
s1 = "¥pError: Gestalt for Unknown";
s2 = "¥pError: Gestalt for Unknown";
break; }
err = Gestalt( gestaltCode, &feature );
if ( err != noErr ) ErrorMessage( err, s1, true );
switch ( gestaltCode ) {
case gestaltProcessorType:
case gestaltSystemVersion:
result = ( feature >= mask );
break;
case gestaltAppleEventsAttr:
case gestaltStandardFileAttr:
case gestaltFSAttr:
result = ( ( feature & (1L<<mask) ) != 0 );
break;
default:
result = false;
break; }
if ( ! result ) ErrorMessage( err, s2, true );
}
// end of program